const Wdate =  require('./src/js/w-date-min')
const HengGang = '2022-02-02 10:10:01'
console.log(new Wdate(HengGang).isBefore('2022-02-01 12:20:19')) // true
console.log(new Wdate(HengGang).isBefore('2022-02-03 12:20:22')) // false
console.log(new Wdate(HengGang).isSame('2022-02-02 10:10:01')) // 传入日期  true
console.log(new Wdate(HengGang).isSame('2022-02-14 12:20:22')) // 传入日期  false
console.log(new Wdate(HengGang).isAfter('2022-02-01 12:20:18')) // false
console.log(new Wdate(HengGang).isAfter('2022-02-03 12:20:21')) // ture
console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-04 15:36:01', '2022-03-26 12:12:00')) // false
console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-03 15:36:01', '2022-03-26 12:12:00')) // true
console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646379361000, 1648267920000)) // false
console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646292961000, 1648267920000)) // true
console.log(new Wdate('2022-02-24 17:09:00').isThisYear()) // ture
console.log(new Wdate('2023-02-24 17:09:00').isThisYear()) // false
console.log(new Wdate('2023-02-24 17:09:00').isThisMonth()) // false
console.log(new Wdate('2022-02-24 17:09:00').isThisMonth()) // true
console.log(new Wdate('2022-02-24 17:09:00').isThisWeek()) // true
console.log(new Wdate('2022-02-28 17:09:00').isThisWeek()) // false
console.log(new Wdate('2022-02-24 17:09:00').isThisWeek()) // true
console.log(new Wdate('2022-02-28 17:09:00').isThisWeek()) // false
console.log(new Wdate('2022-02-28 17:09:00').isToday()) // false
console.log(new Wdate('2022-02-25 17:09:00').isToday()) // ture
console.log(new Wdate('2022-02-25 17:09:00').isWorkDay()) // true
console.log(new Wdate('2022-02-26 17:09:00').isWorkDay()) // false
console.log(new Wdate(HengGang).toString()) // false
console.log(new Wdate(HengGang).toArray()) // false
console.log(new Wdate(HengGang).toArray(true)) // false
console.log(new Wdate(HengGang).toJSON()) // false
console.log(new Wdate(HengGang).toObject()) // false
console.log(new Wdate(HengGang).toObject(true)) // false
// console.log(new Wdate(HengGang).setYear(2).getYear()) // 抛出异常throw new Error('年份参数只能在1970-2200年之间')
// console.log(new Wdate(HengGang).setYear(2).getYear(2020)) // 抛出异常throw new Error('年份参数只能在1970-2200年之间')
console.log(new Wdate(HengGang).setMonth(2).getFormat()) // 2022-02-08 12:12:12
console.log(new Wdate(HengGang).setMonth(-1).getFormat()) // 2021-11-08 12:12:12 上一年的第二个月
console.log(new Wdate(HengGang).setMonth(13).getFormat()) // 2023-01-08 12:12:12 下一年的第一个月
console.log(new Wdate(HengGang).setDate(20).getFormat()) // 2022-03-20 12:12:12
// 0 将导致上个月的最后一天
console.log(new Wdate(HengGang).setDate(0).getFormat()) // 2022-02-28 12:12:12
// -1 将导致上个月的最后一天的前一天
console.log(new Wdate(HengGang).setDate(-1).getFormat()) // 2022-02-27 12:12:12
// 如果一个月有 31 天：32 将导致下个月的第一天
console.log(new Wdate(HengGang).setDate(32).getFormat()) // 2022-04-01 12:12:12
// 如果一个月有 30 天32 将导致下个月的第二天
console.log(new Wdate(HengGang).setDate(32).getFormat()) // 2022-05-02 12:12:12
console.log(new Wdate(HengGang).setHours(13).getFormat()) // 2022-04-08 13:12:12
console.log(new Wdate(HengGang).setHours(0).getFormat()) // 2022-04-08 00:12:12
// -1 将导致前一天的最后一个小时
console.log(new Wdate(HengGang).setHours(-1).getFormat()) // 2022-04-07 23:12:12
// 24 将导致第二天的第一个小时
console.log(new Wdate(HengGang).setHours(24).getFormat()) // 2022-04-09 00:12:12
console.log(new Wdate(HengGang).setMinutes(25).getFormat()) // 2022-04-08 12:25:12
console.log(new Wdate(HengGang).setMinutes(0).getFormat()) // 2022-04-08 12:00:12
// -1 将导致前一小时的最后一分钟
console.log(new Wdate(HengGang).setMinutes(-1).getFormat()) // 2022-04-08 11:59:12
// 60 将导致下一小时的第一分钟
console.log(new Wdate(HengGang).setMinutes(60).getFormat()) // 2022-04-08 13:00:12
console.log(new Wdate(HengGang).setSeconds(25).getFormat()) // 2022-04-08 12:12:25
console.log(new Wdate(HengGang).setSeconds(0).getFormat()) // 2022-04-08 12:12:00
// -1 将导致前一分钟的最后一秒
console.log(new Wdate(HengGang).setSeconds(-1).getFormat()) // 2022-04-08 12:11:59
// 60 将导致下一分钟的第一秒
console.log(new Wdate(HengGang).setSeconds(60).getFormat()) // 2022-04-08 12:13:00
console.log(new Wdate(HengGang).setMilliseconds(25).toJSON()) // 2022-04-08T04:12:12.025Z
console.log(new Wdate(HengGang).setMilliseconds(0).toJSON()) // 2022-04-08T04:12:12.000Z
console.log(new Wdate(HengGang).setMilliseconds(-1).toJSON()) // 2022-04-08T04:12:11.999Z
console.log(new Wdate(HengGang).setMilliseconds(1000).toJSON()) // 2022-04-08T04:12:13.000Z
// console.log(new Wdate(HengGang).set(2).getFormat()) // 2022-04-02 12:12:12
console.log(new Wdate(HengGang).set(2020, 'year').getFormat()) //2020-04-04 12:12:12
console.log(new Wdate(HengGang).set(11, 'month').getFormat()) // 2022-11-04 12:12:12
console.log(new Wdate(HengGang).set(11, 'date').getFormat()) // 2022-04-11 12:12:12
console.log(new Wdate(HengGang).set(11, 'hour').getFormat()) // 2022-04-04 11:12:12
console.log(new Wdate(HengGang).set(11, 'minute').getFormat()) // 2022-04-04 12:11:12
console.log(new Wdate(HengGang).set(11, 'second').getFormat()) // 2022-04-04 12:12:11
console.log(new Wdate(HengGang).set(11, 'millisecond').toJSON()) // 2022-04-04T04:12:12.011Z
console.log(new Wdate(HengGang).set(2).getFormat())
console.log(new Wdate(HengGang).set(2020, 'y').getFormat())
console.log(new Wdate(HengGang).set(11, 'M').getFormat())
console.log(new Wdate(HengGang).set(11, 'd').getFormat())
console.log(new Wdate(HengGang).set(11, 'H').getFormat())
console.log(new Wdate(HengGang).set(11, 'm').getFormat())
console.log(new Wdate(HengGang).set(11, 's').getFormat())
console.log(new Wdate(HengGang).set(11, 'ms').toJSON())
console.log(new Wdate(HengGang).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('y').getFormat('年：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('M').getFormat('月：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('d').getFormat('日：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('Q').getFormat('季：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('H').getFormat('时：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('m').getFormat('分：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('s').getFormat('秒：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('w').getFormat('周[周日第一天]：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setStartOf('wm').getFormat('周[周一第一天]：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('y').getFormat('年：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('M').getFormat('月：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('d').getFormat('日：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('Q').getFormat('季：yy-MM-dd HH:mm:ss 毫秒ms 星期wwQ'))
console.log(new Wdate(HengGang).setEndOf('H').getFormat('时：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('m').getFormat('分：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('s').getFormat('秒：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('w').getFormat('周【周六为最后一天】：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).setEndOf('wm').getFormat('周【周日为最后一天】：yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
console.log(new Wdate(HengGang).getMonthCountDay())
console.log(new Wdate(HengGang).getQuarter())
console.log(new Wdate(HengGang).getQuarter(['第一季度','第二季度','第三季度','第四季度']))
console.log(new Wdate(HengGang).getAge())
console.log(new Wdate(HengGang).getCconstellation())
console.log(new Wdate(HengGang).getDayOfYear())
console.log(new Wdate(HengGang).getAdd())
console.log(new Wdate(HengGang).getAdd(1, 'year'))
console.log(new Wdate(HengGang).getAdd(1, 'month'))
console.log(new Wdate(HengGang).getAdd(1, 'date'))
console.log(new Wdate(HengGang).getAdd(1, 'hour'))
console.log(new Wdate(HengGang).getAdd(1, 'minute'))
console.log(new Wdate(HengGang).getAdd(1, 'second'))
console.log(new Wdate(HengGang).getAdd(2000, 'millisecond'))
console.log(new Wdate(HengGang).getAdd(1, 'quarter'))
console.log(new Wdate(HengGang).getAdd(1, 'week'))
// 传参模式
console.log(new Wdate(HengGang).getSubtract(1, 'year', 'yy-MM-dd HH:mm:ss ms ww')) // 2021-02-22 12:12:12
console.log(new Wdate(HengGang).getSubtract(1, 'month')) // 2022-01-22 12:12:12
console.log(new Wdate(HengGang).getSubtract(1, 'date')) // 2022-02-21 12:12:12
console.log(new Wdate(HengGang).getSubtract(1, 'hour')) // 2022-02-22 11:12:12
console.log(new Wdate(HengGang).getSubtract(1, 'minute')) // 2022-02-22 12:11:12
console.log(new Wdate(HengGang).getSubtract(1, 'second')) // 2022-02-22 12:12:11
console.log(new Wdate(HengGang).getSubtract(2000, 'millisecond')) // 2022-02-22 12:12:10
console.log(new Wdate(HengGang).getSubtract(1, 'quarter')) // 2021-11-22 12:12:12
console.log(new Wdate(HengGang).getSubtract(1, 'week')) // 2022-02-15 12:12:12
// 缩写模式
console.log(new Wdate(HengGang).getAdd(1, 'y')) // 2023-02-22 12:12:12
console.log(new Wdate(HengGang).getAdd(1, 'M')) // 2022-04-22 12:12:12
console.log(new Wdate(HengGang).getAdd(1, 'd')) // 2022-02-23 12:12:12
console.log(new Wdate(HengGang).getAdd(1, 'H')) // 2022-02-22 13:12:12
console.log(new Wdate(HengGang).getAdd(1, 'm')) // 2022-02-22 12:13:12
console.log(new Wdate(HengGang).getAdd(1, 's')) // 2022-02-22 12:12:13
console.log(new Wdate(HengGang).getAdd(2000, 'ms')) // 2022-02-22 12:12:14
console.log(new Wdate(HengGang).getAdd(1, 'Q')) // 2022-06-22 12:12:12
console.log(new Wdate(HengGang).getAdd(1, 'w')) // 2022-03-01 12:12:12
console.log(new Wdate().getDateDiff()) // 两个日期相同
console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-04 03:30:30'))
console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-02 03:30:30'))
console.log(new Wdate().getDiffDay()) // 0
console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-04 03:30:30')) // -1
console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-02 03:30:30')) // 1
const text = ['凌晨', '早上', '上午', '中午', '下午', '晚上', '深夜']
const hour = [
  { start: 0, end: 4 },
  { start: 4, end: 8 },
  { start: 8, end: 12 },
  { start: 12, end: 14 },
  { start: 14, end: 18 },
  { start: 18, end: 22 },
  { start: 22, end: 24 },
]
console.log(new Wdate(HengGang).getTimeFrame(text, hour))
console.log(new Wdate(HengGang).getTimeFrame())
console.log(new Wdate(HengGang).getAllDate('yy年MM月dd日')) // 2022年01月27日
console.log(new Wdate(HengGang).getAllDate('yy年MM月dd日',false)) // 2022年1月27日
console.log(new Wdate(HengGang).getAllDate('MM月dd日')) //01月27日
console.log(new Wdate(HengGang).getAllDate('yy年MM月')) //2022年01月
console.log(new Wdate(HengGang).getAllTime('HH:mm:ss')) // 14:12:02
console.log(new Wdate(HengGang).getAllTime('hh:mm:ss')) // 02:12:02
console.log(new Wdate(HengGang).getAllTime('mm:ss')) // 12:02
console.log(new Wdate(HengGang).getAllTime('HH:mm')) // 14:12
console.log(new Wdate(HengGang).getFormat()) // 2022-01-27 14:57:51 默认格式
console.log(new Wdate(HengGang).getFormat('yy年')) // 2022年
console.log(new Wdate(HengGang).getFormat('yy年MM月')) // 2022年01月
console.log(new Wdate(HengGang).getFormat('yy年MM月dd日'))  // 2022年01月27日
console.log(new Wdate(HengGang).getFormat('yy年MM月dd日', false))  //2022年1月27日 
console.log(new Wdate(HengGang).getFormat('MM月yy年')) //01月2022年
console.log(new Wdate(HengGang).getFormat('yy.MM.dd'))  //2022.01.27
console.log(new Wdate(HengGang).getFormat('yy.MM.dd hh.mm.ss'))  // 2022.01.27 03:03:46
console.log(new Wdate(HengGang).getFormat('yy.MM.dd hh时mm分ss秒 星期ww'))  // 2022.01.27 04时07分41秒 星期四
console.log(new Wdate(HengGang).getFormat('yy.MM.dd hh时mm分ss秒 星期ww', false)) // 2022.1.27 4时7分41秒 星期四
console.log(new Wdate(HengGang).getFormat('hh时mm分ss秒 星期ww'))  // 04时08分47秒 星期四
console.log(new Wdate(HengGang).getFormat('星期ww hh时mm分ss秒')) // 星期四 04时08分47秒
console.log(new Wdate(HengGang).getFormat('今天是dd日, HH时mm分'))  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getFormatOne())  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getFuture())  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getFuture(5002524))  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getLunarZodiac())  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getLunar())  //今天是27日, 16时10分
console.log(new Wdate(HengGang).getYear())
console.log(new Wdate(HengGang).getMonth())
console.log(new Wdate(HengGang).getDate())
console.log(new Wdate(HengGang).getHours())
console.log(new Wdate(HengGang).getMinutes())
console.log(new Wdate(HengGang).getSeconds())
console.log(new Wdate(HengGang).getMilliseconds())
console.log(new Wdate(HengGang).getTime())
console.log(new Wdate(HengGang).getDay())
console.log(new Wdate(HengGang).get('y'))
console.log(new Wdate(HengGang).get('M'))
console.log(new Wdate(HengGang).get('d'))
console.log(new Wdate(HengGang).get('H'))
console.log(new Wdate(HengGang).get('m'))
console.log(new Wdate(HengGang).get('s'))
console.log(new Wdate(HengGang).get('ms'))
console.log(new Wdate(HengGang).getYear(true))
console.log(new Wdate(HengGang).getMonth(true))
console.log(new Wdate(HengGang).getDate(true))
console.log(new Wdate(HengGang).getHours(true))
console.log(new Wdate(HengGang).getMinutes(true))
console.log(new Wdate(HengGang).getSeconds(true))
console.log(new Wdate(HengGang).getMilliseconds(true))
console.log(new Wdate(HengGang).getTime(10))
console.log(new Wdate(HengGang).getDay(true))
console.log(new Wdate(HengGang).get('y', true))
console.log(new Wdate(HengGang).get('M', true))
console.log(new Wdate(HengGang).get('d', true))
console.log(new Wdate(HengGang).get('H', true))
console.log(new Wdate(HengGang).get('m', true))
console.log(new Wdate(HengGang).get('s', true))
console.log(new Wdate(HengGang).get('ms', true))	